home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / class / charary.d < prev    next >
Text File  |  1996-02-04  |  2KB  |  136 lines

  1.  
  2.  
  3.  
  4. /*                                      
  5.  *
  6.  *      Copyright (c) 1993-1996 Algorithms Corporation
  7.  *      3020 Liberty Hills Drive
  8.  *      Franklin, TN 37067
  9.  *
  10.  *      ALL RIGHTS RESERVED.
  11.  *
  12.  *      
  13.  *      
  14.  */
  15.  
  16.  
  17.  
  18. #include "array1.h"
  19.  
  20. defclass  CharacterArray : NumberArray  {
  21.  init:    class_init;
  22. };
  23.  
  24.  
  25. #define TYPE    char
  26.  
  27.  
  28. static    gIndex_t    _index;
  29.  
  30.  
  31. cvmeth    vNew(unsigned rank, ...)
  32. {
  33.     static    gNewArray_t    cnew = NULL;
  34.     MAKE_REST(rank);
  35.  
  36.     if (!cnew)
  37.         cnew = cmcPointer(Array, gNewArray);
  38.     return cnew(self, AT_CHAR, rank, _rest_);
  39. }
  40.  
  41. ivmeth    char    vCharValue(...)
  42. {
  43.     MAKE_REST(self);
  44.     return (char) *((TYPE *) _index(self, _rest_));
  45. }
  46.  
  47. ivmeth    short    vShortValue(...)
  48. {
  49.     MAKE_REST(self);
  50.     return (short) *((TYPE *) _index(self, _rest_));
  51. }
  52.  
  53. ivmeth    unsigned short    vUnsignedShortValue(...)
  54. {
  55.     MAKE_REST(self);
  56.     return (unsigned short) *((TYPE *) _index(self, _rest_));
  57. }
  58.  
  59. ivmeth    long    vLongValue(...)
  60. {
  61.     MAKE_REST(self);
  62.     return (long) *((TYPE *) _index(self, _rest_));
  63. }
  64.  
  65. ivmeth    double    vDoubleValue(...)
  66. {
  67.     MAKE_REST(self);
  68.     return (double) *((TYPE *) _index(self, _rest_));
  69. }
  70.  
  71. ivmeth    vChangeValue(val, ...)
  72. {
  73.     MAKE_REST(val);
  74.     ChkArg(val, 2);
  75.     *((TYPE *) _index(self, _rest_)) = gCharValue(val);
  76.     return self;
  77. }
  78.  
  79. ivmeth    vChangeCharValue(int val, ...)
  80. {
  81.     MAKE_REST(val);
  82.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  83.     return self;
  84. }
  85.  
  86. ivmeth    vChangeShortValue(int val, ...)
  87. {
  88.     MAKE_REST(val);
  89.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  90.     return self;
  91. }
  92.  
  93. ivmeth    vChangeUShortValue(unsigned val, ...)
  94. {
  95.     MAKE_REST(val);
  96.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  97.     return self;
  98. }
  99.  
  100. ivmeth    vChangeLongValue(long val, ...)
  101. {
  102.     MAKE_REST(val);
  103.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  104.     return self;
  105. }
  106.  
  107. ivmeth    vChangeDoubleValue(double val, ...)
  108. {
  109.     MAKE_REST(val);
  110.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  111.     return self;
  112. }
  113.     
  114. static    void    class_init(void)
  115. {
  116.     _index = imcPointer(Array, gIndex);
  117. }
  118.  
  119.  
  120.  
  121.  
  122. /*                                      
  123.  *
  124.  *      Copyright (c) 1993-1996 Algorithms Corporation
  125.  *      3020 Liberty Hills Drive
  126.  *      Franklin, TN 37067
  127.  *
  128.  *      ALL RIGHTS RESERVED.
  129.  *
  130.  *      
  131.  *      
  132.  */
  133.  
  134.  
  135.  
  136.